Asynchronous Transfer Mode (ATM) is a leading networking technology for a wide variety of networking needs. ATM protocols are designed to handle isochronous (time critical) data such as video and telephony, in addition to more conventional data communications between computers or other networks. ATM is a ‘connection oriented’ technology. Prior to any data transfer over an ATM network, a connection (permanent or switched) is established which satisfies the required data transfer quality of service (QOS), e.g., available bandwidth. Such connections are frequently referred to as “calls.”
ATM is particularly well suited to support virtual networking due to its connection oriented nature. A capability to establish a private network between any end systems provides physical location independence and privacy. Location independence means that end users can be put on the same virtual local area network (LAN) independently of their physical location. The Private Network to Network Interface (PNNI) protocol, commercially available from the ATM Forum of San Francisco, Calif., is generally used to establish virtual connections across an ATM network.
A large ATM network is generally set up as a hierarchy of sets of smaller networks frequently referred to as “peer groups.” For example, a low level peer group can comprise network nodes in a single metropolitan area. A higher level network abstraction can comprise all such clusters as well as links between such clusters.
The term “routing” within ATM networks is generally understood to refer to or to describe a process of locating a target end system and selecting the best possible path to reach the target. This function is similar to the routing provided by internet protocol (IP) networks. However, ATM routing has been extended to support two major requirements generally not available in IP networks, quality of service (QOS) routing and scalability. Quality of service routing supports classical data applications and real time applications such as videoconferencing on the same physical infrastructure. Scalability supports very small networks of few switches up to world wide networks of thousands switches using a single protocol. Signaling is required due to the ‘connection oriented’ nature of ATM technology. When setting up (tearing down) a connection, each switch on the selected path needs to allocate (release) the resources required to satisfy the QOS requirement of the connection. One such signaling message is the “setup” message, which is used to initiate a connection.
A virtual connection is often referred to as a Smart (or Soft) Permanent Virtual Circuit (SPVC). SPVC is generally understood to refer to or to describe a communications or communications medium which is “permanently” (for the life of the circuit) provisioned at the end points, but switched in the middle. An SPVC generally connects “point A” to “point B.” However, the actual routing path on the physical network is generally unknown to the user. Such virtual circuits are usually long-lived, e.g., the life of such circuits is of the order of months.
Due to changing conditions on the underlying physical network, the best routing for a particular connection (virtual circuit) may change over time. For example, assume that a direct path exists from point A to point B. However, if there is insufficient capacity available on that link for a new connection, the new connection can be routed from point A to point B via point C. At some later time, for example because of decreased usage of the direct path from point A to point B, sufficient capacity for the connection becomes available on the direct path from point A to point B. A process known as connection “grooming” (also known as “route optimization”) periodically, e.g., once per day, can examine and optimize the path of a connection. If a routing change is to be made, generally a new route is established prior to tearing down the prior path. This is generally known as “soft” rerouting, and can utilize a “soft setup” signal or message.
During a connection grooming process, it is desirable to choose links that have the lowest “cost” for a connection. Many factors can be considered in determining a cost, including latency and delay for a link. Due to route optimization at call setup (initialization) and during grooming, low cost links tend to fill up, e.g., reach capacity. Since the capacity of a virtual circuit is allocated to that virtual circuit, a call tends to stay on the best, or lowest cost, link. As an unfortunate consequence, the “best” links are typically unavailable for new calls once the bandwidth for these links has been allocated to existing calls. In addition, any excess capacity is concentrated in the “worst” links. Therefore, an interruption to the “best” links, e.g., a fault in such links, can cause virtual circuits to be rerouted from the “best” links to the “worst” links, which can have unacceptable quality of service.
Accordingly, it is desirable to route a virtual circuit according to the utilization of a link. A further desire exists for communicating a link utilization factor through the links of a network. A still further desire exists for the above mentioned capabilities to be achieved with a scalable and cross-platform architecture that is compatible with industry standards.